@panos29 It's more about the ADC range, which is about 0.07 - 1.1V for the reading between 0 and 4096. I assume you would always need some kind of pre-amplifier/buffer, at least to protect the esp32 against damage,, and if you do not need to take values at hight speed, you can always use averaging to reduce the noise.
The esp32 chip is told to have a built-in preamplifier, but that is not supported by Micropython, and I do not know whether it works.