Yes, he did the right thing, and here are my reasons:
Ron Weasley had the time and again proven himself capable of handling pressure (Chess match sacrifice in his first year, facing his worst fear <spiders> in his second year, and defending his best friend from an alleged murderer in his third year.). Albus Dumbledore obviously felt Ron would be the right choice to be a prefect. Besides, Ron lacked confidence. Being a prefect will increase his confidence, which in turn will help Ron deal with tougher situations that came later in the series.
Harry Potter had too much on his plate already. Being the “Chosen One”, being the “Boy who Lived”, Being the one who saved the Philosophers Stone and saved Ginny from the Chamber of Secrets and is the winner of the Triwizard Tournament. He even had the mission of defeating Voldemort. He even started “Dumbeldore’s Army”. Now, being a prefect would only add extra strain to everything. Albus Dumbledore thought so.
Minor characters needed to meet major characters As the story progressed, more characters needed to be introduced. By making Harry a prefect, introducing characters like Luna Lovegood would be harder. Besides, this was when Neville Longbottom too began gaining prominence. He wasn't prefect but he was the other Chosen One. His character changes from minor to major in “Order of The Phoenix”.
Although Malfoy didn't deserve to be a perfect, the kind of bully he was.
These are the reasons I think Harry Potter didn't become a perfect.