Question about imprecision of Analog Input

A breadboard test with loose wires flying evevrywhere is probably not the best recipe for accurate ADC readings. My experience is that you will get approximately 8 bits of reliable/repeatable precision from the builtin ADC with a proper setup.

It is always preferred to use the same reference as your sensor so that readings are derived from the same reference and subject to the same fluctuations over time/temperature and what not (this is the case for your examples, but not equally obvious for external sensors that use internal on-chip references.)

The first ADC reading after change of reference is ureliable. So discard the first reading (e.g. do a dummy reading in setup) and also if and whenever reference (AREF) is changed.

Mutliple samples and averaging can improve precision. 4 averaged readings will roughly give you an extra bit, 16 readings two bits (now you're back up to 10 bits), 64 readings 3 bits and so forth. The Arduino setup configures ADC for roughly 8k samples per second by default so for many applications oversampling/averaging is an acceptable tradeoff.