The biggest difference is the amount of time that an attorney is able to spend on your case. Most of the time a public defender will have too many cases open to be able to spend the necessary quality time working on any one file. It’s not that they don’t care about your case, they just don’t have the time to dedicate to you.
The other difference is that when you hire a private attorney, they will appear at court on your behalf so you do not have to physically be there at every court date. Most public defenders require you to be there at every court appearance.