It looks like every accordion directive is creating an own scope. For more details you will have to look into the implementation of accordion at https://github.com/angular-ui/bootstrap/blob/master/src/accordion/accordion.js
To access the parent of parent you can type $parent.$parent like this:
<accordion close-others="oneAtATime">
<accordion-group heading="Classic Accoridion (1)" is-open="$parent.step1">
<a href="" ng-click="clasClick()">Classic Click</a>
</accordion-group>
<accordion-group heading="Nested Accordian (2)" is-open="$parent.step2">
<accordion close-others="oneAtATime">
<accordion-group heading="Test (3)" is-open="$parent.$parent.$parent.step3">
<a href="" ng-click="$parent.$parent.$parent.nestClick()">Nested Click</a>
</accordion-group>
</accordion>
</accordion-group>
</accordion>