Macbeth is a victim of his own desire. So, yes, he has free will.
The question (free-will or determination) hinges on our assessment of how much power the fates have to control Macbeth's future, and also how much power Macbeth has to make his own decisions.
I would argue...
thatthe witches' control is limited. Think of what the witches do. They predict the future. This could be taken to mean that all of the events in Macbeth's life are preordained, and that his actions, too, have already been decided upon. However, even Macbeth considers that he has a choice when he says "if chance will have me King/Why chance may crown me/ Without my stir." He knows that if his destiny is determined, he does not have to take any action at all for it to come true. The fact that he does act after thinking this shows that he has freely decided on the action.
He is in control. The witches can predict, and they can suggest, but they don't necessarily control.
There are, in fact, strict limits to what the witches can and cannot do. When the sailors' wife insults the second witch, they cannot kill her or her husband. All they can do is create chaos around him and toss his boat about in a storm.
Even in their final scene, they cannot control Macbeth's actions. Instead, they exploit his weakness and use his arrogance against him. Again, they have manipulated the situation, but it is Macbeth who chooses to interpret what they tell him in a way that gives him false hope and leaves him vulnerable. In each instance, they offer a path, but it up to Macbeth to decide whether or not to take it.
Macbeth is not without a mind. He repeatedly thinks of reasons why he should not perform the actions he does. He simply ignores his own reasons. To do so requires a choice, and to exercise a choice is to exercise free will.