The 3.3V from the Uno board is always 3.3V.
The 5V is not always exactly 5.0V.
When you use the usb cable to power the Uno, the voltage will drop when also the Ethernet Shield needs to be powered.
The Ethernet Shield requires some amount of current, you know that because the W5100 chip gets hot.
The analogReference() is default set to the 5V. The Arduino reads the analog input, with the 5V level as reference. If the reference changes, so does the value that is read from an analog pin.
When a value of 670 is 3.3V, that means that the 5V was 3.3/6701023 = 5.04V at that moment.
When a value of 730 is 3.3V, that means that the 5V was 3.3/7301023 = 4.62V at that moment.
I think it is therefore necessary to power the Arduino by an external power supply. I'm going to buy a power supply 9V - 1-2A connected to arduino via jack, could it be ok?
There are so many solutions, it depends on what you want to measure.
When you want to measure the real voltage, the internal reference of 1.1V can be used. I use that a lot to measure for example a 12V battery (with two resistors as voltage divider).
Or a voltage reference can be connected to AREF, but that is dangerous. Search on this page for "warning" and read the second sentence of that paragraph:
Sometimes a 3.3V analog sensor is powered with the 3.3V, and the same 3.3V is connected to AREF. That is dangerous as well. I don't use it.
In some cases the inaccurate 5V as reference results in more accurate analog samples (I'm serious, really). When a resistor and LDR are used, the absolute voltage is not wanted, only the voltage relative to the 5V is needed. If the 5V becomes 4.5V, the resistor and LDR will result into the same analog value if the 5V is used as reference.
I use that for a battery operated barebones Arduino (an ATmega328P chip). It uses three AA batteries from 3.0V to about 4.7V, and a resistor with LDR powered by an output pin. The value for the amount of light (measured by the LDR) will be the same, even if the 5V as reference changes from 3.0 to 4.7V.
Everything is the same 3.0 to 4.7V: The battery voltage; The VCC of the ATmega328P; The analog reference; The output pin that poweres the LDR and resistor.
A regulated DC power supply of 9V 1A is okay.
If you buy a switching power supply that can select voltages, then you can use 7.5V.
Buy a certified and good power supply from a normal seller in your country. I had to throw away all the Ebay power supplies for safety reasons.