Batteries, howto make a board that can run a year?

If possible, it should take a few (4 to 10) samples over those 10 minutes to make an average

Why not do a sample every minute and send them all to the server, you get a much more data on the server, once there is connection you better put a bit more data through.

That said, with some clever compression you can minimize data .

e.g. measurements:
T 14.6 (one measurement = start stop T + 1 float = 7 bytes)
T 14.5 14.5 14.5 14.5 14.3 14.5 14.6 14.7 14.9 14.6 (start stop T + 10 floats ~= 43 bytes) could become
T 14.5 0 0 0 -2 0 1 2 4 1 (start stop T + 1 float + 9 deltas ~=22 bytes)

in this example there is one reference temperature and the others are byte values that indicate the offset in 0.1 wrt the reference. The max temp delta that can be send is +- 12 degrees (within one minute this is quite a lot! can be worked around by defining one code as special, eg. a value > 120 means next value is a complete float again)

So with 3x as much bytes (22) one can send 10 times as much data.

BTW - you should add some monitoring of the car battery status