changing arduino analog range

Hello, i was wondering if i could change the analog range for an analog input in the arduino,
like the AREF pin but according to documents on the web AREF pin only changes top range, so if i put a reference voltage of 2.5V in AREF, the ADC range is 0 to 2.5,

I need to make the adc range something like 2 - 3V, so i can get the best accuracy posible.

Thank you

No you can not do this on an Arduino.

You would need level shifting operational amplifiers to condition your signal into the 0-5v range you need.

Use an external ADC with 12 or 16 bits accuracy.

Okay, maybe if you really want to use only the Arduino, there are a few tricks to get the maximum out of it. But it depends on the circuit for the analog signal.
Changing the reference voltage between 2V and 3V has such a minimal effect, that the extra accuracy can easily be achieved in an other way.
You can (you should) use the average of about 5 to 1000 samples.
Have a look at the circuit, and reduce the noise, avoid ground loop and ground currents and so on.
The Arduino has a voltage reference, it's internal voltage reference is 1.1V or 2.56V. Perhaps you can bring the analog signal into that range.
You can use a digital output and a resistor, and inject/subtract some current from the analog signal. This is very tricky, but not impossible. However, I think this is useless, because averaging a number of samples is better.