Arduino is a software environment and also a hardware design. There are several HW designs. The original is based on the AT Mega series. The chip can run at 5V or 3V3, but the frequency usually has to be lowered at the lower voltage.
While I am sure the ADC on Arduino HW is perfectly fine for many things it really isn’t a high accuracy design. It can probably achieve about 8-bits of usable resolution, but that is assuming you do everything well.
When you a need ratiometric measurement, using the main supply rail for the ADC reference is probably a great idea. But, when you want to make absolute measurements (like you are doing) any irregularities in the supply will negatively impact the accuracy of the measurements.
The Arduino HW and SW are really great for doing simple things, but whenever you need to do something more complicated, the simplifications that we’re done to make it easy, make it much harder to do what is needed.