I get this bug all the time. It is very time consuming to fix and requires use of the utility Dwarf Companion.
Either there's an orc that was knocked flying and never landed, or there's an orc that was supposed to come onto the map and didn't actually arrive. Either way, the game still considers that glitched orc part of the siege, so the siege won't end.
The only way to solve the problem is to use Dwarf Companion.
Open it up and make Dwarf Companion view all creatures on the map.
Depending on what is glitched, there are two different approaches as to what you should do.
First, in Dwarf Fortress, look around to see if an orc is stuck with a permanently blue background. If so, this is the bugged orc. Open its creature entry and uncheck the box there for flying. This will unbug the orc, allowing you then to kill it.
If there are no permanently flying creatures, then your task is a bit harder. Use Dwarf Companion to zoom to the sites where orcs died, started with the most recent ones. Eventually, zooming to an orc's death site will zoom you to a tile at the map edge, far from where fighting took place. This will be the bugged orc.
This is a bit hard to explain, because I don't work with the data myself, but you might notice that each dead creature has two check-boxes marked "deceased" checked. If the orc is bugged in this way, only one box will be checked. Position your military around the general area where the bugged orc is, and uncheck the "deceased" box. The bugged orc should reappear, allowing you to kill it.
I filed a bug report on this before. No one else really seemed to know what to do.
I hope something is done about this at some point. I have a theory that saving as units enter the map causes this.