I think the simplest way to do it, in that it requires no external variables or anything, is multiple stages.
I.e. have stages 1, 2, 3 and 4. The start is 1. Make the dialogue have the conditions (If 1, 2 or 3). Then in the end script fragment say 'If 1, set stage to 2', 'if 2 set 3', and 'if 3 set 4'.
Then stage 4 is the 'advancement' of the quest. If it's another dialogue topic, just say 'If getstage is 4' on that topic, or if you need other script stuff to fire you can do it in the script fragment of stage 4.
Hopefully that makes sense. Oh, and obviously replace 1 2 3 and 4 with whatever you actually need/want the stages to be numbered as.
*To get passed the issue of 'the player could click one option three times' you would check 'say once'. However the player couldn't repeat that line if they needed to. So in retrospect, this method may not be the best.
*Actually just add a 'DoOnce' check to each script fragment so they only fire the first time!