Firstly, timing is important on freestyle to help maintain smooth, constant forward momentum. Primarily your hands should always be moving, there should be no stops at any point in your stroke.
As soon as your hand reaches the furthest point in front, it should be moving backwards and levering you forwards through the water. If your hand stops, it makes it very difficult to move again because you have to generate extra force on the water to shift it.
So the first challenge is just to keep your arms moving all the time – they don’t have to move quickly, just don’t let them stop.
Secondly, body roll or rotation is something that can help or hinder your reach. Focus on keeping your core engaged and roll/reach from the hips. The more your hips do, the less your shoulders will fatigue.
It may be that you already roll enough, but that it all comes from the shoulders so your hips trail along behind. By concentrating on your hips, your shoulders can relax more and keep better control of your arms and hands.
Overgliding can also happen when you attempt to stretch too far. Keep your arms within what you can comfortably reach to help get your hands down below your elbows quicker, for a better hold on the water.