Enhancing Ethical Explanations of Large Language Models through Iterative Symbolic Refinement