What is the smallest voltage that an Arduino UNO can read from the analogRead()?
It's a 10 bit ADC, so splits the input range into 1024 levels, or roughly 1000 as that makes the sums easier.

Depending on whether you have a 5 V or a 3.3 V MCU, the resolution will be about 5&nbsp;mV or 3.3&nbsp;mV.

Whether the resolution, that is the smallest step we can resolve, relates to the smallest voltage we can measure is another matter. I did some experiments recently to see how well my Trinket M0 (another MCU that can be used with the Arduino project, using ATSAMD21E18) measured close to ground, and it didn't read for the first few steps, and then had some hysteresis so read differently whether the input voltage was going up or down. This was not entirely unexpected, what was impressive was that it read as well as it did very close to ground.

You ought to do the same experiment with your MCU, to see whether it will actually read 3 mV differently to 6 mV, or whether you need to get above a threshold before the ADC starts working properly.