Morale can be a tricky thing to model, but the focus is the end result of the siege and not the actual dynamics of the interactions between psychological stimuli. Instead, the willingness of the garrison to hold out or for the besieger to keep at it is what I am most concerned with.
So, my working mechanic for this aspect of siege resolution is to require either side to pass morale tests based on the results of their activities during each of the successive phases.
Each such test would be an opposed roll, with each player rolling a number of d6s equal to the current morale of his force. For example, say the garrison has a morale of 8 and the besieging force a morale of 12, the defender rolls 8 dice and the attacker 12. Both players are looking to achieve a "success" by rolling a 4 or greater on each die. The resulting number of successes are tallied and compared. Losing the test drops morale by 1, winning increases morale by 1. However, if one side scores 3 times more successes than the other, the losing side capitulates or lifts the siege, depending which side they were on.
Now, there are modifiers to the base morale, but not to the actual die rolls. So, a particularly gifted commander may increase the base more of his troops by 2 die or the failure to advance to the next phase may cause the besieging force to lose 1 die. Other modifiers would include the presence of a siege train, whether the garrison is on half rations, the length of the siege, proximity of a relief force, etc.
In my view, this method allows for the chance of an unlikely result, with the siege lifting very early or the garrison surrendering at the end of Phase 0, but the actual results of player actions will play a part in the chances of such extremes occurring.
While it is true that players may be rolling a fair amount of dice, it is still preferable to requiring players who live over 40 miles apart to get together to resolve the siege. Again, it can be done remotely via Skype or by phone, using an internet based die rolling program (the one I am thinking of actually records the results so they may be verified).
True, it is not the same as pushing miniatures around a table, but reality does not always allow for what is ideal.