Vcc is the power supplied to the Arduino. The ADC does measurements relative to Vcc, so if Vcc changes 10%, the values reported by the ADC will change approximately 10% (the other direction). Vcc depends on what your power supply is supplying, and may not be particularly accurate.
The Arduino's processor chip includes a temperature-compensated bandgap reference that produces a stable 3.3V reference source. (Although the ATmega328P datasheet says the reference is 1.1V. What processor is your Arduino using?) If you use this for ADC, then fluctuations in Vcc won't affect the ADC values.
The analog/digital converter converts the analog input voltage into a 10-bit value, where 0 represents ground voltage (GND) and 1024 represents the reference voltage or Vcc. (Except 1023 is the highest you can get.) So if you use Vcc, then the meaning of each ADC value depends on what Vcc happens to be. If you use the 3.3V (1.1V?) reference, then the ADC values are stable. The downside is your input voltage needs to be under 3.3V (1.1V).