По идее тут всю логику надо запереть в сервис, а наружу оставить функции, которые будешь из компонентов дергать. Я бы так сделал (дьявол в деталях конечно, но под твое описание подходит).
Получается вся логика walkthrough находится в одном месте и не размазана по компонентам, а компоненты лишь за нужные ниточки дергают и все.