When does the ADC start reading again in interupt mode?
Your answer is correct. The ADC does indeed keep going independently of
what the ISR does. There is, however, a point I would like to make
clearer. You asked:


  My question is does the ADC start the new reading as soon as I have
  read the ADCH register or does it wait for the code inside the
  interrupt to finish?


The ADC starts a new reading as soon as it is done taking the previous
one, irrespective of whether you read ADCH or not. When your ISR
starts, the ADC is already busy making the following conversion. This
guarantees a steady conversion rate, at one A/D conversion every
13&nbsp;ADC clock cycles exactly.

As a side note, you can read the result with

int val = ADC;


No need to read the bytes separately unless you are using a very ancient
version of gcc that does not know how to read a 16-bit register.