Oh! You must have one of the boards that accidentally went from the factory without the flash being programmed correctly. This has actually happened in two different ways at different times, but in both cases you can correct the problem by following the instructions at Arduino programing lost after reset/powercycle
As for ADC, I think absolutely any discrete ADC is going to be as good or better than what is built into the AVR chip on a standard Arduino. This one looks pretty cheap https://www.adafruit.com/product/856 but I suspect it might work out slightly easier to interface to one with I2C rather than SPI if you don’t need super high speed so maybe this one https://www.adafruit.com/product/1083
There’s a lot of information on how to use that I2C breakout board (and its higher precision but slower cousin) at https://learn.adafruit.com/adafruit-4-channel-adc-breakouts