How do I avoid duck ending up tough?
If tenderness is what you are after, cook it sous vide to an internal temperature around 130degF for about 3 hours. It should be easier than roasting it to keep the meat tender.

Cooking meat in a temperature controlled water bath being one of the simplest ways to cook meat without accidentally overcooking anything.
You can fine many sous vide duck recipes online.