Are all of your "screens" the same size between the camera pan transition? Are all of these "screens" contained on a single giant layout or are you using different layouts? Are you panning the camera to a new location in said layout, or are you moving the "level" around the viewport to give the feeling of scrolling through a giant level?
I guess knowing a little more about how your game is set up would be beneficial to making a proper suggestion.
Without knowing any of those things though, perhaps having a "state machine" set up for the player positioning - so you have for example;
--------------------
GlobalVariable.PlayerPosition = X (can be X or Y depending on your desired screen exit point)
ScreenState=1
(if)ScreenState=1
(and)PlayerPosition=(desiredvalue)
--- Scroll camera to X,Y
--- Set ScreenState to 2
(if)ScreenState=2
(and)PlayerPosition=(desiredvalue)
--- Scroll camera to X,Y
--- Set ScreenState to 3
So for each of your screens, you're creating a custom "trigger" point that will cause the camera to shift X,Y coordinates to display your next area. Using this method you wouldn't be restricted to a set size for each "screen" - but you may be restricted to having one exit point only (or you could add a second variable to any specific screen state to compare X and Y, not just one or the other).
As far as the scrolling thing goes, you can move the camera with lerp(camera.x,desired.x,1-0.2^dt) (and same for Y) for a smooth but fairly speedy transition. Rather than attaching the camera to the player itself - you would be setting this to hard coordinates on your map.
Hope this helps
~Sol