I got this idea from a question by Ze German about whether you choose a target before rolling for the assault cannon. I've always played it as you do but that still leaves the problem of knowing which aliens to attack after the first target because you know what your score is and can't possibly miss.
Assault Cannon: Choose a target and roll the dice as you normally would. Any left over score after destroying the target gives you an additional attack. Choose a target as normal and roll again using one red dice for each unused score one the previous attack. Repeat this process until you either fail to destroy a target or destroy a target with no excess score left over.
Overall this makes the assault cannon less effective because you don't know which targets to go for after the first attack (the overall score averages exactly the same because a red dice averages a score of 1) but it can potentially score enough to wipe out any group of targets.