Most microcontroller ADCs have a pin for the positive ADC reference voltage, and some will also have one for the negative reference. Those that don't will use ground as the lower reference. Then the ADC's reading is \$\dfrac{V_{IN} - V_{REF-}}{V_{REF+} - V_{REF-}} \times Maximum\ reading\$. If Maximum Reading is 1023, then \$V_{IN} = V_{REF-}\$ will give you 0, and \$V_{IN} = V_{REF+}\$ will result in a 1023 reading.
As for the unexpected values you see, check this answerthis answer.