Lots of good advice given so far. I would like to add something. Less experienced players tend to move at the speed of the ball. Hence slow balls mean slower footwork, slow shoulder turn (probably when the ball bounces in front of you), slow racquet take back. When you face harder hitters and the ball in right up on you more quickly than you are used to you, you end up getting jammed with a late contact point (especially since you have long backswing).
You need to prepare for the upcoming shot the moment you know that the upcoming ball is a forehand or backhand. You must split step when your opponent is about to hit his/her shot. By the time you recover from the split step you know which side the ball is coming. You must turn your shoulders then. By the time the ball is above the net, your shoulders should be turned. You will be amazed by how much more time you will feel that you have to set up to hit the ball with early preparation.
Watch Serena Williams. She has such early racquet prep. She is waiting for the ball like she has all the time in the world.