normal battery capacity reading is done using
/sys/class/power_supply/battery/capacity - which is in 10% steps
On some Motorola phones, there's also
/sys/class/power_supply/battery/charge_counter - that is in 1% steps.
But on Milestone, the charge_counter is always 0.
Unless you use /system/bin/battd from Milestone 2 or Droid 2 (or possibly other phone as well)
See (origin - Defy)
Btw., in CM7 I've decided to use battd from the leaked Droid2 gingerbread firmware, as that is the most recent (and the only 2.3) motorola's build for phone with similar HW as Milestone that I'm aware of.
Current implementation in CM7 for Milestone (optional, using persist.sys.one_percent_batt property):
Please note that Droid 2 / Milestone 2 is more strict when it comes to third party batteries.
So this feature may cause issues when third party batteries are used.
There may also be problems with some third party AC adapters that are not able to provide stable 5V when charging.