atmega328p measuring supply battery voltage
No, that won't work. The VCC and AVCC must be within 0.3V of each other, so connecting them to separate voltages, e.g. one to battery and another to regulator makes it very difficult to ensure that they are always within 0.3V of each other. Simply by connecting the battery could damage it, if battery voltage rises rapidly and regulator output rises slowly.
Also if the AVR clock is 8 MHz, it needs at least 2.4V supply voltage to operate, voltages below 2.4V is out of the safe operating area. Therefore it cannot be expected to run at supply voltages below 2.4V.
So it depends on what is the other device uses for logic level limits, but using different supply voltages for two SPI devices can be difficult unless voltage level translation is used. AVR tolerates only voltage max of 0.5V above VCC on its input pin, so if the other device runs at 3.0V, minimum AVR supply must be 2.5V or over, or absolute maximum is exceeded. It also needs to be checked if 2.5V from AVR exceeds logic high minimum input level of the other device that runs on 3.0V.