Interrupt catching high transition at 2.5V, not 3 V on 328P

In general you cannot use a digital input to measure voltage - there are several reasons for this:

The ATmega inputs are actually schmidt-triggers, which means the transition voltage is different for rising voltages and falling voltages.

The actual transition voltage(s) will vary from device to device, will vary with supply voltage, possibly with temperature too - its not specified.

If you were using a CMOS chip that didn't have schmidt trigger inputs then you shouldn't be putting any slowly varying voltage into an input pin at all - this causes the input gate to dissipate large currents when both n-channel and p-channel devices are on simultaneously. You can also get oscillation within the input circuitry due to the high gain of CMOS inverters in the linear (forbidden) region. For this reason you usually always connect all unused inputs to GND or Vdd.

The ATmega microcontrollers do a lot to help us out and let us leave usused inputs unconnected. They also disconnect the pins from the input circuitry when in sleep mode using built-in bilateral CMOS switches.

For detecting a voltage level you should choose either an analog input and analogRead(), or do some research about the analog comparator that's on the ATmega (try searching these forums, otherwise you'll have to delve into the datasheet for the ATmega328 family).

[ I've used another microcontroller (Parallax Propeller) where the input circuits are specifically designed to work with both digital and analog input voltages and switch very close to mid-rail. They also have a slight amount of hysterysis to prevent oscillation - that device would do what you want quite nicely I suspect. ]