I've used a fitbit and found that the steps seem pretty accurate for the distance I walk. BUT, not the actual distance it lists. I've mapped out my runs/walks. So, I know how long the distance is. My fitbit (as well as my Nike + app) seem to over estimate.
When you run, do you use long or short strides ? meaning, do you cover more distance with long strides or more distances with more steps (cadence) ? If you have a quick cadence instead of long strides, that might be the reason for the discrepancy.
What I need is a Garmin GPS, but those are too pricey. For now, I've been tracking time more than distance. the distance I take with a grain of salt.