I know you can make a workflow to trigger when an item is modified and also that you can configure the start conditional to use built-in logic that basically captures the previous value but this functionality doesn't seem to be available in any workflow actions.
If you have Nintex Forms then you could edit the list form to hide all of the controls directly linked to your list columns with the IsEditMode() rule applied to a Panel. You would need to recreate all of these labels/controls and add them to a second panel control which would be hidden using the rule IsNewMode().
By doing this you could tie in a workflow that first logs all of the information in your list columns to the history list and then update your list columns with the values entered into the controls within the IsEditMode() Panel via the update list action.
Hope that helps.