Most places where you can buy a helmet also have little foam pieces that you can add or replace with bigger ones inside the helmet. All helmets have them - they are about 3 inches long and are little foam pads that stick to the inside. I'm sure you can order them online, but should be able to get for free from any place that sells helmets. If you have replaced the small pads inside a helmet with larger ones all the way around the helmets and it still moves, it is too big. They do have infant helmets if a toddler one is too big.
Note, the helmet should sit on the head so there is only one finger width between the helmet and the child's eyebrows. Also, if you can fit one finger between the helmet and the head anywhere around the helmet, it is too big.
Bell helmets are great helmets - we fit them for toddlers a lot. Here is their site; I would recommend either the lil bell shell or boomerang. $30 which is a decent price for a good helmet.
http://www.bellhelmets.com/index.cfm?fuseaction=category.display&category_id=15
Once you get one, check with your local hospital - many of them have people trained to fit helmets. I do this as part of my job. Good luck!