Ballista are pretty damn powerful. Should just about cut any enemy in half it hits, even at 20 blocks. Just invest in some high quality ballista bolts for your main defense battery. Remember too that a high trained siege operator will fire a ton faster than a new recruit. So if you are early enough in the fort or want to it live a while get a few dwarves in the mechanics guild and have them start flinging stones in a catapult down a hallway. I'm not sure if firing at nothing or if firing at an enemy gives more experience. Either way you could try cage trapping a few enemies once in a while, pit them onto an isolated platform, and have those catapults fire at them constantly until they are finally squashed by the stone.
Does anyone know the attack distance of elite goblin archers? If it's higher than 20 I'd suggest letting your siege operators be close enough to run away so you don't lose their training skills. If it's less than 20(which I assume it is, 20 is pretty far) then just go crazy with ballista. It would just suck to have a rusty iron arrow fly through your fortifications and plant itself in the forehead of your legendary siege operator.