How do I configure the LIS3DH as a pedometer that generates interrupts when walking?
Section 6.3.2 and 6.3.3 of the application note explains how to raise an interrupt when an axis exceeds a certain value. Combined with a high-pass interrupt to get rid of the gravity vector, allowed me to set a really low threshold that triggers at 64mg.

  call DelayFrame ; raise CS

  ld a, LIS3DH_REG_WHOAMI
  ld b, a
  call ReadRegister
  ld a, c
  ldh [hWhoAmI], a

  call DelayFrame ; raise CS

; based on application note section 6.3.2-3
  ld a, LIS3DH_REG_CTRL1
  ld b, a
  ld a, $77 ; CTRL1: enable all axes, 400HZ
  ld c, a
  call WriteRegister
  ld a, $0F ; CTRL2: high-pass filter on everything
  call SPITransfer
  ld a, $00 ; CTRL3: not used
  call SPITransfer
  ld a, $88 ; CTRL4: BDU, high resolution, 2g
  call SPITransfer
  ld a, $08 ; CTRL5: latch interrupt on INT1_SRC 
  call SPITransfer

  call DelayFrame ; raise CS

  ld a, LIS3DH_REG_INT1CFG
  ld b, a
  ld a, %00101010 ; int1 config: enable high int on all axes
  ld c, a
  call WriteRegister
  ld a, 0 ; src
  call SPITransfer
  ld a, 4 ; threshold
  call SPITransfer
  ld a, 0 ; minimum duration
  call SPITransfer