I believe that a small, custom driver for the adc would make the code smaller, simpler and more to the point for our use-case.
We could be consistent with the style - not doing anything in constructor, simplify and shorten function names, combine waitDRDY + scan into one function call, etc.