As long as you are not afraid to modify your UML diagrams and make new ones, UML will be a very powerful tool for designing and engineering any piece of software regardless of the frequency at which it changes.
Iterative Development was mentionned in another answer and makes heavy use of UML diagrams to express the software small parts at a time. You basically give your team an objective for a small (2-3 weeks) iteration, make a bunch of UML to conceptualize the goals and model of your iteration then code after that. Iterative Development strongly encourages you to modify existing artifacts such as UML diagrams.
The thing to keep in mind here is that UML is not limiting because your software changes a lot during development, but it might become limiting if you make one batch of diagrams and never change them or make new ones to better reflect your ever-changing piece of software.