Controllers and page models serve different purposes and there scope is different as well.
While controllers are only accessible from the templates with the same name, the methods of page models are also accessible from other templates that reference the page as well.
In your controllers, you put the logic - or the data - for your templates, thus keeping the template easier to read. So instead of defining your variables in the template, you do that in the controller, e.g.
$projects = page('projects')->children()->visible()->shuffle()->limit(5);
The page model, however, is useful if you want to define new page methods for your templates or if you want to overwrite/extend existing page methods. Typically, it makes sense to put a method into a page model, if it is used several times in a template or if you need a special function, i.e. a calculation.
For use cases of page models, you can search this forum a bit, e.g. this thread or this
This information would go into a controller.