How to handle input from PlayerController instead of Pawn

That is incorrect. Pawns can receive input without a controller (see all the tutorial videos that just throw input logic into a player character). Input actions are consumed by the following in order : PlayerController > Level Blueprint > PlayerPawn Input | Unreal Engine Documentation