Improving absolute precision of ADC to balance battery voltage
I was thinking about a circuit like this one to 'extract' the single cell's voltage:
(My first shot at circuitlab, please be lenient :))







simulate this circuit &ndash; Schematic created using CircuitLab

This scheme can be applied identically to every cell to be measured.

I'm not sure if this works when "self-powered" from the battery pack as sketched.
You should definitely go for a rail-to-rail op-amp, which kind of excludes bi-polar devices. 

Are you actually charging batteries or rather "supercapacitors"? - Maybe you can find some ideas for either case by searching for "supercap balancing", resulting for example in this paper on the topic.

Edit:

Maybe it's worth mentioning that with this op-amp-based circuit you can of course scale the output value to your exact needs by varying the resistor values. For example, one might want to scale some "3V max." of the cells (= range from 0V to 3V) to an output of "5V max." (range 0V to 5V) to feed into a 5V-ADC. Or one may scale the voltage down, for example to measure "4.2V max." LiPos with a 3.3V µC/ADC.

Edit #2:

With one more op-amp per cell it's also possible to remove some constant offset voltage and increase the resolution of the measurement. If, for example, a single cell needs only be measured between 2.5V and 3V, the 2.5V constant voltage can be subtracted by the 2nd op-amp, and the resulting, limited voltage range of only 0V - 0.5V can then be scaled up to, e.g., 0V - 3.3V. With a 10-bit ADC this would yield a (theoretical) resolution of 0.5V/1024 ~ 0.5mV/LSB.