Most errors are due to poor speech habits.
You have to enunciate properly with no affectations and no slurring. Speak with an even cadence, like a good TV news announcer.
A decent microphone will help, but is not a cure-all. You should get pretty good accuracy with a cheap microphone after you practice a bit. I would not upgrade the microphone until I had several hundred hours of experience with a cheap microphone. You have to understand what speech recognition can and cannot do.
Moving the microphone closer or further from your mouth can have some effect.
Practice by reading from a book.
With training, the application will be able to understand context---the difference between "to", "two", and "too", for instance.