Can you switch over to hardware serial ?

Then you could use an interrupt to receive the data.

Less pins used too.