Я думаю, что вы должны использовать здесь составной шаблон.Я бы сказал, что каждый шаг должен обрабатывать ссылку на набор шагов.Если вы хотите, вы можете переместить эту коллекцию в ваш WaterfallStep, но она все равно должна быть коллекцией шагов, а не базовых шагов и не абстрактных шагов.
Что касается JPA, вы должны использовать аннотацию OneToMany.Есть много примеров использования этой аннотации.
Удачи